Skip to content

Conversation

ryankurte
Copy link

@ryankurte ryankurte commented Sep 14, 2025

hey this is a bit of an unhinged PR, but, i tried to use a few NTRIP client libraries and nothing on crates.io actually worked...

so, this:

  • reworks the client so you can list mounts and subscribe to a specific mount (then poll the handle to receive RTCM messages)
  • adds TLS support to the client (required for the australian position service)
  • adds a command line tool both for utility and to demonstrate use of the library
  • improves configuration parsing so you can use a set of recognised providers or a manual URI
➜ cargo run -- --help                            
NTRIP command line tool

Usage: ntrip-cli [OPTIONS] --ntrip-user <USER> <NTRIP_HOST> <COMMAND>

Commands:
  list          List mount points on an NTRIP server
  find-nearest  Find the nearest mount point to a specified location
  subscribe     Subscribe to a specified mount point and print received RTCM messages
  help          Print this message or the help of the given subcommand(s)

Arguments:
  <NTRIP_HOST>  NTRIP server identifier or URI ("rtk2go", "linz" etc., or "[ntrip|http|https]://host:port")

Options:
      --ntrip-user <USER>      Username for the NTRIP service [env: NTRIP_USER=REDACTED]
      --ntrip-pass <PASS>      Password for the NTRIP service [env: NTRIP_PASS=REDACTED] [default: ]
      --log-level <LOG_LEVEL>  Set log level [default: info]
  -h, --help                   Print help
➜ cargo run -- centipede --ntrip-user centipede --ntrip-pass centipede find-nearest 48.85 2.35
 INFO ntrip_cli: Start NTRIP/RTMP tool
 INFO ntrip_cli: Finding nearest NTRIP mount to (48.85, 2.35)
 INFO ntrip_cli: Nearest mount: IPGP - Paris (48.845, 2.356), 0.709 km away

@gwbres
Copy link
Contributor

gwbres commented Sep 19, 2025

@ryankurte,

thank you for the thorough work, I will look at it and merge it this week-end

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants